.TH hal_pin_new "3hal" "2006-10-12" "Documentación LinuxCNC" "HAL"
.SH NOMBRE

hal_pin_new \- Crea un pin HAL

.SH SINTAXIS

.HP
 int hal_pin_bit_new(const char *\fIname\fR, hal_pin_dir_t \fIdir\fR, hal_bit_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR)

.HP
 int hal_pin_float_new(const char *\fIname\fR, hal_pin_dir_t \fIdir\fR, hal_float_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR)

.HP
 int hal_pin_u32_new(const char *\fIname\fR, hal_pin_dir_t \fIdir\fR, hal_u32_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR)

.HP
 int hal_pin_s32_new(const char *\fIname\fR, hal_pin_dir_t \fIdir\fR, hal_s32_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR)

.HP
 int hal_pin_bit_newf(hal_pin_dir_t \fIdir\fR, hal_bit_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR, const char *\fIfmt\fR, \fI...\fR)

.HP
 int hal_pin_float_newf(hal_pin_dir_t \fIdir\fR, hal_float_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR, const char *\fIfmt\fR, \fI...\fR)

.HP
 int hal_pin_u32_newf(hal_pin_dir_t \fIdir\fR, hal_u32_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR, const char *\fIfmt\fR, \fI...\fR)

.HP
 int hal_pin_s32_newf(hal_pin_dir_t \fIdir\fR, hal_s32_t ** \fIdata_ptr_addr\fR, int \fIcomp_id\fR, const char *\fIfmt\fR, \fI...\fR)

.HP
 int hal_pin_new(const char *\fIname\fR, hal_type_t \fItype\fR, hal_pin_dir_t \fIdir\fR, void **\fIdata_ptr_addr\fR, int \fIcomp_id\fR)

.SH ARGUMENTOS
.IP \fIname\fR
El nombre del pin
.IP \fIdir\fR

La dirección del pin, desde el punto de vista del componente. Puede ser \fBHAL_IN\fR, \fBHAL_OUT\fR o \fBHAL_IO\fR. 
Cualquier número de pines \fBHAL_IN\fR o \fBHAL_IO\fR pueden estar conectados a la misma señal, pero no está permitido
mas de un pin \fBHAL_OUT\fR . Un componente puede asignar un valor a un pin que
sea \fBHAL_OUT\fR o \fBHAL_IO\fR, pero no puede asignar un valor a un pin que sea
\fBHAL_IN\fR.

.IP \fIdata_ptr_addr\fR
La dirección del puntero a datos, que debe estar dentro de la memoria asignada por
\fBhal_malloc\fR.

.IP \fIcomp_id\fR
Un identificador de componente HAL devuelto por una llamada anterior a \fBhal_init\fR.

.IP \fIfmt, ...\fR
Una cadena de formato de estilo printf y sus argumentos

.IP \fItype\fR
El tipo del parámetro, como se especifica en \fBhal_type_t(3hal)\fR.

.SH DESCRIPCIÓN
La familia de funciones \fBhal_pin_new\fR crea un nuevo objeto \fIpin\fR. Una vez
se ha creado un pin, se puede vincular a un objeto de señal utilizando
\fBhal_link\fR. Un pin contiene un puntero y el componente que posee el pin
puede desreferenciar el puntero para acceder a cualquier señal vinculada al pin.
(Si no hay ninguna señal vinculada, apunta a una señal ficticia).

Hay funciones para cada uno de los tipos de datos que admite HAL. Los pines pueden
estar vinculados solo a señales del mismo tipo.

.SH VALOR DEVUELTO
Devuelve 0 en caso de éxito o un valor errno negativo en caso de error.

.SH VER TAMBIÉN
\fBhal_type_t(3hal)\fR, \fBhal_link(3hal)\fR

